The Cardano developers need to learn three different languages in
order to write smart contracts on Cardano, which are as follows:
Plutus
Rosetta
Marlowe
However, internally, Cardano is written in Haskell.
“Haskell is a general-purpose, statically typed, purely functional
programming language with type inference and lazy evaluation”
as per Wiki.
Cardano functions can be written independently and tested in
complete isolation. Hence, Haskell enables Cardano to write
powerful methods and better testability. Now, let’s explore the three
languages of Cardano.
5.5.1 Plutus
It’s the Turing complete smart contract language for Cardano,
originally written in Haskell. Hence, again, it’s a purely functional
programming language with full-stack programming environment.
5.5.2 Marlowe
Marlowe, which is a domain specific language (DSL), was introduced
later to Cardano and it was specially crafted to handle writing and
executing financial contracts conveniently. The learning curve in
Marlowe is quite low, and hence, it’s highly recommended for
building Decentralized Finance (DeFi) applications. Marlowe also
comes with a playground or a sandbox environment using which the
developer can easily develop, simulate, and test smart contracts.
5.5.3 Rosetta
Rosetta provides a set of tools to integrate the other external layers
with Blockchains.
5.6 Wallet